package com.cn.laoluobase.jo;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class ResultsObj {


   private Integer code;
   @JsonInclude(JsonInclude.Include.NON_NULL) // 当为空时不转换JSON输出。这样前端就不会返回null.
   private Object data;
   private String msg;

   // 标准方法1-成功，返回code\data\msg
   public static ResultsObj success(Object data){
      return new ResultsObj(MyHttpEnum.SUCCESS.getCode(),data,MyHttpEnum.SUCCESS.getMsg());
   }

   // 标准方法2-失败，返回code\msg
   public static ResultsObj fail(String msg){
      return new ResultsObj(MyHttpEnum.FAIL.getCode(),null,msg);
   }


   // 按code去查找枚举类。使用久了可能会新增很多枚举列表，逐个写成标准方法有点累，直接调用这个就行了。
   public static ResultsObj byCode(Integer code){
      MyHttpEnum httpEnum=MyHttpEnum.byCode(code);
      return new ResultsObj(httpEnum.getCode(),null, httpEnum.getMsg());
   }

   // 按name去查找枚举类。使用久了可能会新增很多枚举列表，逐个写成标准方法有点累，直接调用这个就行了。
   public static ResultsObj byName(String name){
      MyHttpEnum httpEnum=MyHttpEnum.byName(name);
      return new ResultsObj(httpEnum.getCode(),null, httpEnum.getMsg());
   }


}
